#pragma once

#pragma pack(1)
struct OnFootSync // 0x42 - 0x86
{
	WORD	KeysLR;	// 0x42 - 0x0
	WORD	KeysUD; // 0x44 - 0x2
	WORD	KeysOther; // 0x46 - 0x4
	FLOAT	PosX; // 0x48 - 0x6
	FLOAT	PosY; // 0x4C - 0xA
	FLOAT	PosZ; // 0x50 - 0xE
	FLOAT	QuaternionScal; // 0x54 - 0x12
	FLOAT	QuaternionX; // 0x58 - 0x16
	FLOAT	QuaternionY; // 0x5C - 0x1A
	FLOAT	QuaternionZ; // 0x60 - 0x1E
	BYTE	PlayerHealth; // 0x64 - 0x22
	BYTE	PlayerArmour; // 0x65 - 0x23
	BYTE	PlayerWeapon; // 0x66 - 0x24
	BYTE	SpecialAction; // 0x67 - 0x25
	FLOAT	VelocityX; // 0x68 - 0x26
	FLOAT	VelocityY; // 0x6C - 0x2A
	FLOAT	VelocityZ; // 0x70 - 0x2E
	FLOAT	SurfingX; // 0x74 - 0x32
	FLOAT	SurfingY; // 0x78 - 0x36
	FLOAT	SurfingZ; // 0x7C - 0x3A
	WORD	SurfingInfo; // 0x80 - 0x3E
	DWORD	AnimationIndex; // 0x82 - 0x40
};

#pragma pack(1)
struct AimSync // 0xDD - 0xFC
{
	BYTE	CameraMode; // 0xDD
	FLOAT	FrontVectorX; // 0xDE
	FLOAT	FrontVectorY; // 0xE2
	FLOAT	FrontVectorZ; // 0xE6
	FLOAT	PosX; // 0xEA
	FLOAT	PosY; // 0xEE
	FLOAT	PosZ; // 0xF2
	FLOAT	ZAim; // 0xF6 
	BYTE	WeaponState; // 0xFA
	BYTE	Unknown1; // 0xFB
};

#pragma pack(1)
struct InCarSync // 0x86 - 0xC5
{
	WORD	VehicleId; // 0x86 - 0x0
	WORD	KeysLR; // 0x88 - 0x2
	WORD	KeysUD; // 0x8A - 0x4
	WORD	KeysOther; // 0x8C - 0x6
	FLOAT	QuaternionScal; // 0x8E - 0x8
	FLOAT	QuaternionX; // 0x92 - 0xC
	FLOAT	QuaternionY; // 0x96 - 0x10
	FLOAT	QuaternionZ; // 0x9A - 0x14
	FLOAT	PosX; // 0x9E - 0x18
	FLOAT	PosY; // 0xA2 - 0x1C
	FLOAT	PosZ; // 0xA6 - 0x20
	FLOAT	VelocityX; // 0xAA - 0x24
	FLOAT	VelocityY; // 0xAE - 0x28
	FLOAT	VelocityZ; // 0xB2 - 0x2C
	FLOAT	Health; // 0xB6 - 0x30
	BYTE	PlayerHealth; // 0xBA - 0x34
	BYTE	PlayerArmour; // 0xBB - 0x35
	BYTE	PlayerWeapon; // 0xBC - 0x36
	BYTE	SirenState; // 0xBD - 0x37
	BYTE	Unknown2; // 0xBE - 0x38
	WORD	TrailerId; // 0xBF - 0x39
	FLOAT	Unique; // 0xC1 - 0x3B
};

#pragma pack(1)
struct PassangerSync // 0xC5 - 0xDD
{
	WORD	VehicleId; // 0xC5
	BYTE	Seat; // 0xC7
	BYTE	Weapon; // 0xC8
	BYTE	Health; // 0xC9
	BYTE	Armour; // 0xCA
	WORD	KeysLR; // 0xCB
	WORD	KeysUD; // 0xCD
	WORD	KeysOther; // 0xCF
	FLOAT	PosX; // 0xD1
	FLOAT	PosY; // 0xD5
	FLOAT	PosZ; // 0xD9
};